home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX Base Documentation 1998 November
/
IRIX 6.5.2 Base Documentation November 1998.img
/
usr
/
share
/
catman
/
p_man
/
cat3
/
ifl
/
iflTileIter.z
/
iflTileIter
Wrap
Text File
|
1998-10-20
|
9KB
|
199 lines
iiiiffffllllTTTTiiiilllleeeeIIIItttteeeerrrr((((3333)))) IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiiffffllllTTTTiiiilllleeeeIIIItttteeeerrrr((((3333))))
NNNNAAAAMMMMEEEE
iiiiffffllllTTTTiiiilllleeeeIIIItttteeeerrrr - tile iterator
IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM
iflTile3D
HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE
#include <il/iflTileIter.h>
CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
This class is primarily used to iterate through the pages covering a
tile. It assumes that pages are fixed size and that the origin of the
first page is aligned with (0,0). The alignment assumption can be
overridden by setting the _t_i_l_e_A_l_i_g_n_e_d flag, either in the constructor or
in the sssseeeettttTTTTiiiilllleeee() method. Pages are assumed to be abutted unless the page
border attribute is set using sssseeeettttPPPPaaaaggggeeeeBBBBoooorrrrddddeeeerrrr(); in this case, the page
origins will be altered so that each page overlaps its neigbors by twice
the page border and the first page will have it's origin at (-_b_x,-_b_y,-
_b_z).
The iflTileIter class contains eight public member variables, six of
which are derived from iflTile3D, that together specify the current page:
iiiinnnntttt (_x,_y,_z,_c) The origin of the current page.
iiiinnnntttt (_n_x,_n_y,_n_z,_n_c) The size of the current page. (These
values are constant.)
CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrrssss
iflTileIter(const iflTile3Dint& parent, const iflSize& pageSize,
int cSize, const iflConfig* cfg=NULL, int tileAligned=0)
iflTileIter(const iflTile3Dint& parent, int cSize,
const iflConfig* cfg=NULL, int tileAligned=FALSE)
iflTileIter() _p_r_o_t_e_c_t_e_d
IIIItttteeeerrrraaaattttiiiioooonnnn
int more()
int getCount()
IIIInnnniiiittttiiiiaaaalllliiiizzzzaaaattttiiiioooonnnn
void setPageSize(const iflSize& pageSize)
void setTile(const iflTile3Dint& parent, int cSize,
const iflConfig* cfg=NULL, int tileAligned=0)
void setPageBorder(const iflXYZint& border, int includeBorder=FALSE)
PPPPaaaaggggeeee 1111
iiiiffffllllTTTTiiiilllleeeeIIIItttteeeerrrr((((3333)))) IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiiffffllllTTTTiiiilllleeeeIIIItttteeeerrrr((((3333))))
FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS
iiiiffffllllTTTTiiiilllleeeeIIIItttteeeerrrr(((())))
iflTileIter(const iflTile3Dint& parent, const iflSize& pageSize,
int cSize, const iflConfig* cfg=NULL, int tileAligned=0)
iflTileIter(const iflTile3Dint& parent, int cSize,
const iflConfig* cfg=NULL, int tileAligned=FALSE)
iflTileIter() _p_r_o_t_e_c_t_e_d
The first constructor takes a _p_a_r_e_n_t tile and a page size
(_p_a_g_e_S_i_z_e). This will make a tile with same size as the page that
can be stepped across the parent tile in a row by row fashion. The
constructed tile will have its origin aligned to a multiple of its
size (unless _t_i_l_e_A_l_i_g_n_e_d is TRUE, in which case this tile will have
is origin aligned to the parent's origin). The constructor also
takes the number of channels int the parent tile, _c_S_i_z_e, and a
channel list/channel offset (in _c_f_g), to control stepping in the
channel dimension.
The second version of the constructor defers setting the page size
to a later call to sssseeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeee().
The protected constructor is used by derived classes, which are
responsible initializing the object.
ggggeeeettttCCCCoooouuuunnnntttt(((())))
int getCount()
This method returns the total number of pages that will be iterated
through for the current parameter values.
mmmmoooorrrreeee(((())))
int more()
This method is used to iterate through the page locations that cover
the parent tile. It must be called prior to accessing the first page
location. It will return FALSE when there are no more page locations
to iterate through, TRUE otherwise. After each call to mmmmoooorrrreeee() the
public member variables, (_x,_y,_z,_c), will indicate to origin of the
next page.
sssseeeettttPPPPaaaaggggeeeeBBBBoooorrrrddddeeeerrrr(((())))
void setPageBorder(const iflXYZint& border, int includeBorder=FALSE)
PPPPaaaaggggeeee 2222
iiiiffffllllTTTTiiiilllleeeeIIIItttteeeerrrr((((3333)))) IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiiffffllllTTTTiiiilllleeeeIIIItttteeeerrrr((((3333))))
This method is used to apply a page border, (_b_o_r_d_e_r) to this tile;
this will cause the iterated locations to overlap by twice the page
border in each dimension; reflecting the way pages with borders are
stored in an image cache. If _i_n_c_l_u_d_e_B_o_r_d_e_r is TRUE then pages that
only supply border data will be included (useful when iterating for
write access to a cache).
sssseeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeee(((())))
void setPageSize(const iflSize& pageSize)
This method sets the size of this tile (i.e. the page size that will
be iterated).
sssseeeettttTTTTiiiilllleeee(((())))
void setTile(const iflTile3Dint& parent, int cSize,
const iflConfig* cfg=NULL, int tileAligned=0)
This method resets the dimensions of the parent tile that will be
iterated across. The parameters have the same meanings as on the
constructor.
IIIINNNNHHHHEEEERRRRIIIITTTTEEEEDDDD MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNNSSSS
IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiiffffllllTTTTiiiilllleeee3333DDDD
boundingBox(), contains(), grow(), init(), intersect(), operator!=(),
operator+=(), operator-=(), operator==(), shrink()
SSSSEEEEEEEE AAAALLLLSSSSOOOO
iflTile3D, ilTileIter
PPPPaaaaggggeeee 3333